﻿/* 
 ********************************************************************************
 * 0.01 21/03/2013 MªInés Antón Castelló y José Javier Amorós , Sergio Amat, Andrea Fuentes
 *                 Constructor, DibujarMenu, creados todos los métodos de las opciones.
 *                 
 * 0.02 25/03/2013 MªInés Antón Castelló y José Javier Amorós
 *                 Métodos modificados de las opciones y modificado Dibujar para mostrar la opción seleccionada.
 */

using System;

namespace Monkey
{
    class Menu
    {
        //private Image inventario;
        Opcion[,] opciones = new Opcion[3, 3];
        Font sans18;
        Partida miPartida;
        //private int inicio;
        //private int alto;
        //private int ancho;

        public Menu(Partida partida)
        {
            Construir();
            sans18 = new Font("data/Joystix.ttf", 18);
            //inventario = new Image("data/inventario3.png");
            miPartida = partida;
            //inicio = 455;
            //alto = 67;
           // ancho = 120;
        }

        public void Construir()
        {

            opciones[0, 0] = new Opcion((short)(0 * 120), (short)(450 + 50 * 0), "  Dar");
            opciones[0, 1] = new Opcion((short)(0 * 120), (short)(450 + 50 * 1), "  Abrir");
            opciones[0, 2] = new Opcion((short)(0 * 120), (short)(450 + 50 * 2), "  Mirar");
            opciones[1, 0] = new Opcion((short)(1 * 120), (short)(450 + 50 * 0), "Tirar");
            opciones[1, 1] = new Opcion((short)(1 * 120), (short)(450 + 50 * 1), "Cerrar");
            opciones[1, 2] = new Opcion((short)(1 * 120), (short)(450 + 50 * 2), "Coger");
            opciones[2, 0] = new Opcion((short)(2 * 120), (short)(450 + 50 * 0), "Empujar");
            opciones[2, 1] = new Opcion((short)(2 * 120), (short)(450 + 50 * 1), "Hablar a");
            opciones[2, 2] = new Opcion((short)(2 * 120), (short)(450 + 50 * 2), "Usar");

        }

        public void Dibujar(bool hayOpcionSeleccionada, Opcion opcionSeleccionada, string elemento)
            {
            //Hardware.DrawHiddenImage2(inventario, ancho * 3, inicio,0,0,430,130);

            for (int fila = 0; fila < 3; fila++)
                {
                for (int columna = 0; columna < 3; columna++)
                    {
                    opciones[columna, fila].DibujarOpcion();
                    }
                }

            if (hayOpcionSeleccionada)
                {
                Hardware.WriteHiddenText(opcionSeleccionada.GetTexto() + " " + elemento,
                      380, 430,
                       0xFF, 0x00, 0x00,
                      sans18);
                }

            else
                {
                Hardware.WriteHiddenText("Ir a ...",
                      380, 430,
                      0xFF, 0x00, 0x00,
                      sans18);
                }
            }

        public Opcion ObtenerOpcionEnPosicion(short x, short y)
        {
            Opcion opcionSeleccionada = opciones[x / 120, (y - 450) / 50];
            return opcionSeleccionada;
        }
        public string Dar()
        {
            return "Dar";
        }

        public string Tirar()
        {
            return "Tirar";
        }

        public string Usar()
        {
            return "Usar";
        }

        public string Abrir()
        {
            return "Abrir";
        }

        public string Empujar()
        {
            return "Empujar";
        }

        public string Coger()
        {
            return "Coger";
        }

        public string Cerrar()
        {
            return "Cerrar";
        }

        public string HablarA()
        {
            return "HablarA";
        }

        public string Mirar()
        {
            return "Mirar";
        }
    }
}
